package io;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

/**
 * 向文件中写入文本数据
 */
public class WriteStringDemo {
    public static void main(String[] args) throws IOException {
        //向文件fos.txt中写入文本内容
        /*
            文件流的构造器:
            FileOutputStream(String filename)
            FileOutputStream(File file)
            以上两种构造器创建文件流时，如果指定的文件已经存在了，会先将该文件内容
            清除。之后通过当前流写出的所有内容会被重写写入到文件中。

            文件流的构造器:
            FileOutputStream(String filename,boolean append)
            FileOutputStream(File file,boolean append)
            如果创建文件流时append的值为true，则当前文件流为追加模式:
            如果指定的文件已经存在，原数据全保留，新写入的内容都会陆续追加到文件末尾
         */
//        FileOutputStream fos = new FileOutputStream("fos.txt");
        FileOutputStream fos = new FileOutputStream("fos.txt",true);

//        String line = "让我掉下眼泪的，不止昨夜的酒。";
//        /*
//            文字与2进制的对应关系有各种标准:字符集
//            支持中文的字符集常见的有:
//            UTF-8：unicode的转换编码
//                   英文字符，符号，数字各1字节
//                   中文字符占3字节。
//
//            GBK：国标编码
//                 英文，数字，符号各1字节
//                 中文字符占2字节
//
//            互联网中通常使用的字符集是UTF-8
//
//            String提供了将字符串按照指定字符集转换为一组字节的方法:
//            byte[] getBytes(Charset cs)
//         */
//        //将line的内容按照UTF-8编码转换为一组字节
//        byte[] data = line.getBytes(StandardCharsets.UTF_8);
//        fos.write(data);//将转换的所有字节写入文件
//
//        line = "让我依依不舍的，不止你的温柔。";
//        data = line.getBytes(StandardCharsets.UTF_8);
//        fos.write(data);

        fos.write("成都，带不走的只有你。".getBytes(StandardCharsets.UTF_8));

        System.out.println("写出完毕!");
        fos.close();
    }
}




